Utility computing is the packaging of computing resources, such as processing and storage, as a metered service similar to a traditional public utility (such as electricity, water, natural gas, or telephone network). Such computing services have the advantage of a low or no initial cost to acquire hardware; instead, computational resources are essentially rented. Customers with very large computations or a sudden peak in demand can also avoid the delays that would result from physically acquiring and assembling a large number of computers. Utility computing usually uses some form of virtualization so that the large amount of storage or computing power available is seen by users as virtual machines.
A challenge with conventional utility computing models, for both the service provider and end user, is appropriately determining usage of the resources, and appropriately costing the resources. Depending on the specific application, utility computing providers typically price the services based on a metered processor usage (i.e. MIPS/sec), or on the amount of storage used (i.e. GB). Such metrics give only a rough approximation of usage, and may not accurately reflect the true resource usage.
The current metrics in utility computing are also an impediment to adoption by end users. A single metric, such as CPU usage, does not provide end users with sufficient granularity in understanding the resource usage of different applications. However, monitoring the usage of many different computing resources leads to confusion, and an inability to relate the different metrics to the ultimate utility pricing model.
It is, therefore, desirable to provide an improved method of determining computer resource usage in utility computing.